﻿using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
    class AD_Proyecto_Linea
    {
        public void CRE_Pro_Linea(SqlCommand comando, MOD_Proyecto_Linea obj)
        {
            try
            {
                string sp = "SP_CRE_PROYECTO_LINEA";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PLIN_DESCRIPCION", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PLIN_ENCARGADO", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_CREACION", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_CERRADA", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_ESTIMADA", SqlDbType.Date));

                comando.Parameters[0].Value = obj.PLIN_DESCRIPCION;
                comando.Parameters[1].Value = obj.PLIN_ENCARGADO;
                comando.Parameters[2].Value = obj.PLIN_FECHA_CREACION;
                comando.Parameters[3].Value = obj.PLIN_FECHA_CERRADA;
                comando.Parameters[4].Value = obj.PLIN_FECHA_ESTIMADA;

                comando.ExecuteNonQuery();


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        public void DEL_Pro_Linea(SqlCommand comando, int codigo)
        {
            try
            {
                string sp = "SP_DEL_PROYECTO_LINEA";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();


                comando.Parameters.Add(new SqlParameter("@PLIN_CONSECUTIVO", SqlDbType.Int));

                comando.Parameters[0].Value = codigo;

                comando.ExecuteNonQuery();


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        public void UPD_Pro_Linea(SqlCommand comando, MOD_Proyecto_Linea obj)
        {
            try
            {
                string sp = "SP_UPD_PROYECTO_LINEA";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PLIN_CONSECUTIVO", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PLIN_DESCRIPCION", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PLIN_ENCARGADO", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_CREACION", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_CERRADA", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@PLIN_FECHA_ESTIMADA", SqlDbType.Date));

                comando.Parameters[1].Value = obj.PLIN_IDPROYECTO;
                comando.Parameters[1].Value = obj.PLIN_DESCRIPCION;
                comando.Parameters[2].Value = obj.PLIN_ENCARGADO;
                comando.Parameters[3].Value = obj.PLIN_FECHA_CREACION;
                comando.Parameters[4].Value = obj.PLIN_FECHA_CERRADA;
                comando.Parameters[5].Value = obj.PLIN_FECHA_ESTIMADA;

                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        /// <summary>
        /// Ses the l_ grid_ puestos.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <returns>List{MOD_Puesto}.</returns>
        public List<MOD_Proyecto_Linea> SEL_PROYECTO_LINEA(SqlCommand comando)
        {
            try
            {
                string sp = "SP_SEL_PROYECTO_LINEA";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                List<MOD_Proyecto_Linea> lista = new List<MOD_Proyecto_Linea>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    MOD_Proyecto_Linea obj = new MOD_Proyecto_Linea();
                    obj.PLIN_CONSECUTIVO = Convert.ToInt32(dt.Rows[i]["PLIN_CONSECUTIVO"]);
                    obj.PLIN_DESCRIPCION  = dt.Rows[i]["PLIN_DESCRIPCION"].ToString();
                    obj.PLIN_ENCARGADO  = dt.Rows[i]["PLIN_ENCARGADO"].ToString();
                    obj.PLIN_FECHA_CREACION = dt.Rows[i]["PLIN_FECHA_CREACION"].ToString();
                    obj.PLIN_FECHA_CERRADA = dt.Rows[i]["PLIN_FECHA_CERRADA"].ToString();
                    obj.PLIN_FECHA_ESTIMADA = dt.Rows[i]["PLIN_FECHA_ESTIMADA"].ToString();

                    lista.Add(obj);
                }


                return lista;

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        public MOD_Proyecto_Linea  SEL_PROYECTO_LINEAbyID(SqlCommand comando, int PRO_LINEA)
        {
            try
            {
                string sp = "SP_SEL_PROYECTO_LINEAbyID";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PLIN_CONSECUTIVO", SqlDbType.Int));


                comando.Parameters[0].Value = PRO_LINEA;


                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                MOD_Proyecto_Linea obj = new MOD_Proyecto_Linea();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    obj.PLIN_IDPROYECTO = Convert.ToInt32(dt.Rows[i]["PLIN_IDPROYECTO"]);
                    obj.PLIN_DESCRIPCION = dt.Rows[i]["PLIN_DESCRIPCION"].ToString();
                    obj.PLIN_ENCARGADO = dt.Rows[i]["PLIN_ENCARGADO"].ToString();
                    obj.PLIN_ENCARGADO = dt.Rows[i]["PLIN_FECHA_CREACION"].ToString();
                    obj.PLIN_ENCARGADO = dt.Rows[i]["PLIN_FECHA_CERRADA"].ToString();
                    obj.PLIN_ENCARGADO = dt.Rows[i]["PLIN_FECHA_ESTIMADA"].ToString();
                }

                return obj;


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
        /*
        /// <summary>
        /// Ses the l_ puesto by puesto.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="PUE_NOMBRE">The pu e_ nombre.</param>
        /// <returns>System.Int32.</returns>
        public int SEL_PuestoByPuesto(SqlCommand comando, string PUE_NOMBRE)
        {
            try
            {
                string sp = "SP_SEL_PuestoByPuesto";
                int cant_pro = 0;
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PUE_NOMBRE", SqlDbType.VarChar));


                comando.Parameters[0].Value = PUE_NOMBRE;


                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                //MOD_Proveedores obj = new MOD_Proveedores();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    cant_pro = Convert.ToInt32(dt.Rows[i]["PUE_CANT"]);


                }

                return cant_pro;


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
        
    }*/
    }
}
